人工智慧從單純的問答模型走向具備自主執行能力的Agent時代,靜態的資訊安全防禦模型隨時都有新的攻擊手法。過往的存取控制大多採用全有或全無的靜態權限策略,只要系統判定使用者或Agent擁有某項API的呼叫權限,該次操作就會被予以放行。
當Agent具備連續呼叫工具、自我修正與語意推理的能力時,攻擊者便能透過間接提示注入(Indirect Prompt Injection)或記憶污染(Memory Poisoning),引導Agent執行一系列單個動作合規、組合起來卻構成敏感情資外洩或非授權操作的授權內動作串接攻擊(Authorized-action chaining attack)。
為了破解這種「穿著合規外衣」的隱蔽攻擊,現代資安架構導入了能力狀態機(Capability State Machine)。本文將深度拆解能力狀態機的運作架構、數學與邏輯轉移機制,以及它如何透過「動態權限收縮」為Agent建立起無法逾越的動態安全邊界。
在軟體系統中,權限控制通常基於角色(RBAC)或屬性(ABAC)。例:辦公室助理Agent具備「讀取內部 Slack 訊息」與「發送對外 Email」兩項權限。
當Agent在執行任務時,Gatekeeper會進行如下檢查:
slack:read 權限 > 放行email:send 權限 > 放行這種無狀態(Stateless)的靜態檢測忽略了最關鍵的一點:動作A的執行,已經改變了Agent當前上下文的敏感度與風險等級。
如果動作A讓Agent讀取到了公司內部的API金鑰,而動作B隨即將該金鑰傳送到外部郵件地址,整個過程在Gatekeeper眼中完全合規,但實際上卻已經造成了嚴重的資料洩漏。
能力狀態機正是為了打破這種無狀態的盲點而生。它的核心哲學是:權限不該是固定的,而應該隨著Agent的行為歷史與當前狀態動態演進與收縮。
能力狀態機將Agent的執行生命週期抽象化為一個有限狀態機(Finite State Machine, FSM)。狀態機由四個核心要素組成:

為了直觀理解能力狀態機如何運作,我們可以將一個典型的辦公Agent劃分為三個核心狀態:

read_slack_credentials() 或 fetch_payroll_db()
send_email, http_post, web_upload)send_email)在實際部署中,單靠預先定義好的狀態轉移規則(Hard-coded Rules),有時難以應對複雜多變的自然語言意圖。因此,能力狀態機通常會與判別式感測器(Discriminative Sensor)深度結合,構成「雙層防禦架構」。

這種「感測器提供情報,狀態機執行管束」的協同機制,讓動態防禦既具備機器學習的彈性,又具備狀態機確定性的安全保障。
雖然能力狀態機在理論上極具吸引力,但在將其整合至企業級Agent系統時,開發團隊必須克服以下四大工程挑戰:
能力狀態機必須作為Agent與外部工具之間唯一的代理者(Mediator)。系統必須確保Agent無法繞過狀態機直接調用API。這通常需要搭配基於物件能力(Object-Capability)的程式庫或沙盒隔離環境(Sandbox)來實現。
如果Agent因為一時誤觸敏感資料而被推入降權狀態S1,但使用者確實需要Agent幫忙將分析好的財務報告發送給指定主管,系統該如何處理?
若狀態劃分過於粗糙,容易引發誤報,導致正常任務無法完成;若狀態劃分過於精細,狀態數量(|S|)將呈現指數型成長,導致轉移矩陣過於複雜、難以維護。設計者必須在業務靈活性與狀態複雜度之間取得精確平衡。
若要讓Agent從高敏狀態S1安全地回到高信任狀態S0,單純將狀態變數改回S0是不夠的。系統必須同時進行上下文清洗(Context Scrubbing),清除Agent短期記憶中載入的高敏感資料,防止其在狀態切換後仍利用殘留記憶進行攻擊。
Capability State Machine透過將安全信任轉化為動態演進的狀態,確保Agent的每一次工具呼叫,都受當前狀態與歷史行為影響。它不僅補足了Gatekeeper機制對授權內動作串接攻擊的失明死角,更為未來無所不在的智慧代理,建構出一套兼具安全性、可預測性與實務落地價值的動態安全防線。